/**
 * <strong>Title : SpotInspection.java<br>
 * </strong> <strong>Package : cn.b.sky.mes.em.service<br>
 * </strong> <strong>Description : </strong>@类注释说明写在此处@<br>
 * <strong>Create on : 2015年11月16日 上午10:02:58<br>
 * </strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 *          <strong>修改历史:</strong><br>
 *          修改人 | 修改日期 | 修改描述<br>
 *          -------------------------------------------<br>
 * <br>
 * <br>
 */
package cn.b.sky.mes.em.service;

import java.util.List;

import cn.b.sky.mes.em.model.SpotInspectionAttach;
import org.springframework.web.multipart.MultipartFile;

import cn.b.sky.mes.em.model.SpotInspection;
import cn.b.sky.mes.em.model.condition.SpotInspectionCondition;
import cn.b.sky.common.model.BatchJobReport;

/**
 * <strong>Title : SpotInspection.java<br></strong>
 * <strong>Package : cn.b.sky.mes.em.service<br></strong>
 * <strong>Description : </strong>设备点检服务接口<br> 
 * <strong>Create on : 2015年11月16日 上午10:02:58<br></strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人 | 修改日期 | 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface SpotInspectionService {
  /**
   * 
   * <strong>Title : selectSpotInspectionListByCondition<br></strong>
   * <strong>Description : </strong>条件查询点检记录<br> 
   * <strong>Create on : 2015年11月16日 上午10:09:26<br></strong>
   * <p>
   * @param condition
   * @return
   * List<SpotInspection>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<SpotInspection> selectSpotInspectionListByCondition(SpotInspectionCondition condition);

  /**
   * 
   * <strong>Title : selectSpotInspectionListByCondition<br></strong>
   * <strong>Description : </strong>条件查询点检记录总数<br> 
   * <strong>Create on : 2015年11月16日 上午10:09:26<br></strong>
   * <p>
   * @param condition
   * @return
   * List<SpotInspection>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人  | 修改日期  | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectSpotInspectionCountByCondition(SpotInspectionCondition condition);

  /**
   * 
   * <strong>Title : selectSpotInspectionListByCondition<br></strong>
   * <strong>Description : </strong>根据id获取点检记录实体<br> 
   * <strong>Create on : 2015年11月16日 上午10:09:26<br></strong>
   * <p>
   * @param condition
   * @return
   * List<SpotInspection>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人  | 修改日期  | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  SpotInspection getSpotInspection(Long id);

  /**
   * 
   * <strong>Title : selectSpotInspectionListByCondition<br></strong>
   * <strong>Description : </strong>新增点检记录<br> 
   * <strong>Create on : 2015年11月16日 上午10:09:26<br></strong>
   * <p>
   * @param condition
   * @return
   * List<SpotInspection>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人  | 修改日期  | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  boolean insertSpotInspection(SpotInspection inspection);

  /**
   * 
   * <strong>Title : selectSpotInspectionListByCondition<br></strong>
   * <strong>Description : </strong>更新点检记录<br> 
   * <strong>Create on : 2015年11月16日 上午10:09:26<br></strong>
   * <p>
   * @param condition
   * @return
   * List<SpotInspection>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人  | 修改日期  | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  boolean updateSpotInspection(SpotInspection inspection);

  /**
   * 
   * <strong>Title : selectSpotInspectionListByCondition<br></strong>
   * <strong>Description : </strong>删除点检记录<br> 
   * <strong>Create on : 2015年11月16日 上午10:09:26<br></strong>
   * <p>
   * @param condition
   * @return
   * List<SpotInspection>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人  | 修改日期  | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  BatchJobReport deleteSpotInspection(Long id, String siteCode);

  /**
   * <strong>Title : insertSpotInspectionAttach<br></strong>
   * <strong>Description : </strong>新增点检和附件<br> 
   * <strong>Create on : 2015年11月16日 下午1:48:38<br></strong>
   * <p>
   * @param attach
   * @param file
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   * @param inspection 
   */
  void insertSpotInspectionAndAttach(SpotInspection inspection, SpotInspectionAttach attach, MultipartFile file,
                                     String siteCode);

  /**
   * <strong>Title : updateSpotInspectionAndAttach<br></strong>
   * <strong>Description : </strong>更新点检和附件<br> 
   * <strong>Create on : 2015年11月16日 下午7:01:23<br></strong>
   * <p>
   * @param inspection
   * @param attach
   * @param file
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateSpotInspectionAndAttach(SpotInspection inspection, SpotInspectionAttach attach, MultipartFile file,
      String siteCode);

  /**
   * <strong>Title : deleteAttachment<br></strong>
   * <strong>Description : </strong>删除附件<br> 
   * <strong>Create on : 2015年11月17日 下午3:15:12<br></strong>
   * <p>
   * @param siteCode
   * @param attachmentCode
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteAttachment(String siteCode, String attachmentCode);

}
